package cn.lili.modules.order.order.service;

import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.order.order.entity.dos.RankingActivityConfig;
import cn.lili.modules.order.order.entity.dos.RankingAwards;
import cn.lili.modules.order.order.entity.dto.RankingActivityConfigDTO;
import cn.lili.modules.order.order.entity.vo.RankingActivityConfigVO;
import cn.lili.modules.order.order.entity.vo.TipsVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 活动配置列表 服务类
 * </p>
 *
 * @author zhushiqing
 * @since 2023-12-21
 */
public interface IRankingActivityConfigService extends IService<RankingActivityConfig> {

    /**
     * 获取活动列表
     * @param dto
     * @return
     */
    Page<RankingActivityConfigVO> getRankingActivityConfig(RankingActivityConfigDTO dto);

    /**
     * 当期活动
     * @return
     */
    RankingActivityConfigVO getCurrentRankingActivityConfig();
    /**
     * 发布新活动
     * @param
     * @return
     */
    ResultMessage<Object> addRankingActivityConfig(RankingActivityConfigDTO dto);


    /**
     * 编辑活动
     */
    ResultMessage<Object> editRankingActivityConfig(RankingActivityConfigDTO dto);

    /**
     * 删除活动
     */
    ResultMessage<Object> deleteRankingActivityConfig(RankingActivityConfigDTO dto);

    /**
     * 删除活动奖品
     */
    ResultMessage<Object> deleteRankingActivityAward(RankingAwards rankingAwards);

    /**
     * 获取当前排名活动
     */
    RankingActivityConfig getCurrentActivity();

    ResultMessage<Object> getTopAwards();

    ResultMessage<Object> activityDetail(String id);

    TipsVO tipsList(String id);

    ResultMessage<Object> rankingList(String id);

    ResultMessage<Object> historyList();

    ResultMessage<Object> historyDetail(String id);

    void checkIsRepeatRankingNum(List<RankingAwards> rankingAwards);
}

